import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
 
 
class MergeCell(QWidget):
    def __init__(self):
        super(MergeCell, self).__init__()
        self.initUI()
 
    def initUI(self):
        self.setWindowTitle('合并单元格')
        self.resize(600, 400)
 
        layout = QHBoxLayout()
        #表格对象
        tableWidget=QTableWidget()
        #四行三列
        tableWidget.setRowCount(4)
        tableWidget.setColumnCount(3)
        #设置表格字段
        tableWidget.setHorizontalHeaderLabels(['姓名','性别','体重(kg)'])
 
        newItem = QTableWidgetItem('小明')  # 单元格的数据项
        newItem.setFont(QFont('Times', 40, QFont.Black))  # 字体，字号，颜色
        newItem.setForeground(QBrush(QColor(255, 0, 0)))
        tableWidget.setItem(0, 0, newItem)
 
        newItem = QTableWidgetItem('女')
        newItem.setForeground(QBrush(QColor(255, 255, 0)))
        newItem.setBackground(QBrush(QColor(0, 0, 255)))  # rgb
        tableWidget.setItem(0, 1, newItem)
 
        newItem = QTableWidgetItem('100')
        newItem.setFont(QFont('Times', 60, QFont.Black))
        newItem.setForeground(QBrush(QColor(0, 0, 255)))
        tableWidget.setItem(0, 2, newItem)
 
        tableWidget.setRowHeight(0, 120)  # 设置第一行高度，三个数据项都在第一行上，第一行的单元格高度都变为120
        tableWidget.setColumnWidth(0, 150)  # 设置第一列宽度
        tableWidget.setRowHeight(2,200)#设置第三行高度,注意这是第三行，而不是第三个单元格的高度！！！！！
        tableWidget.setColumnWidth(2,180)# 设置第二列宽度
 
        layout.addWidget(tableWidget)
        self.setLayout(layout)
 
 
if __name__=='__main__':
    app=QApplication(sys.argv)
    main=MergeCell()
    main.show()
    sys.exit(app.exec_())
 
